package com.yuandian.api.business_monitor.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.yuandian.annotation.AddSuffix;
import com.yuandian.utils.poi.converter.AddSuffixConverter;
import com.yuandian.utils.poi.converter.BusinessCompletionConverter;
import com.yuandian.utils.poi.converter.BusinessStatusConverter;
import lombok.Data;

import java.io.Serializable;

/**
 * 说明：业务详情vo对象
 * @Author yanjun
 * @Date 2020/10/27 9:03
 */
@Data
public class BusinessDetailVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 详单ID(docId)
     */
    @ColumnWidth(40)
    @ExcelProperty(value = "详单ID")
    private String docId;

    /**
     * 数据id
     */
    @ExcelIgnore
    private Long id;

    /**
     * 系统名称
     */
    @ExcelIgnore
    private String systemName;

	/** 操作系统 */
	@ExcelIgnore
	private String operatingSystem;

	/** 浏览器 */
	@ExcelIgnore
	private String browser;

    /**
     * 业务名称
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "业务名称")
    private String businessName;
	@ExcelIgnore
    private String businessCode;


    /**
     * 自定义返回码
     */
    @ColumnWidth(25)
    @ExcelProperty(value = "自定义返回码")
    private String customResCode;

    /**
     * 开始时间
     */
    @ColumnWidth(30)
    @ExcelProperty(value = "开始时间")
    private String startTime;

    /**
     * 开始时间戳
     */
    @ExcelIgnore
    private Long startTimeUsec;

    /**
     * 结束时间
     */
    @ColumnWidth(30)
    @ExcelProperty(value = "结束时间")
    private String endTime;

    /**
     * 结束时间戳
     */
    @ExcelIgnore
    private Long endTimeUsec;

    /**
     * 业务状态
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "业务状态", converter = BusinessStatusConverter.class)
    private Integer dealState;

    /**
     * 完整性
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "完整性", converter = BusinessCompletionConverter.class)
    private Integer completionState;

    /**
     * 办理时长
     */
    @ColumnWidth(20)
    @AddSuffix("秒")
    @ExcelProperty(value = "办理时长", converter = AddSuffixConverter.class)
    private String dealTime;

    /**
     * 响应时长
     */
    @ExcelIgnore
    private String serverResponseTime;

    /**
     * 客户端传输时长
     */
    @ExcelIgnore
    private String clientTranslateTime;

    /**
     * 打开页面数
     */
    @ExcelIgnore
    private Integer openPage;

    /**
     * 跳转页面数
     */
    @ExcelIgnore
    private Integer jumpPage;
    /**
     * 服务端传输时长
     */
    @ExcelIgnore
    private String serverTranslateTime;

    /**
     * 客户端空闲时长
     */
    @ExcelIgnore
    private String clientFreeTime;

    /**
     * 专属指标
     */
    @ExcelIgnore
    private String exclusiveIndicator;
}
